package com.zx.Ding.common;

/**
 * 基于ThreadLocal封装工具类，用户保存和获取当前登录用户id
 * 只要在单线程内,多次获取用户ID时,可以直接调用threadLocal.get()方法
 * 在JDK1.2中引入了ThreadLocal类，来修饰共享变量，使每个线程都单独拥有一份共享变量
 *
 * threadLocal的场景
 * 拿Session来说，我们要在接口参数中加上HttpServletRequest对象，
 * 然后调用 getSession方法，且每一个需要用户信息的接口都要加上这个参数，才能获取Session
 */
public class ThreadContext{
    private static ThreadLocal<Long>threadLocal=new ThreadLocal<>();
    /*
    * 设置值
    * 将当前线程的此线程局部变量的副本设置为指定的值。
    * */
    public static void setCurrentId(Long id){
        threadLocal.set(id);
    }
    /*
     * 获取值
     * 返回当前线程的此线程局部变量的副本中的值。
     * */
    public static Long getCurrentId(){
        return threadLocal.get();
    }
}
